﻿@using ZdSoft.Model
@{
    @ViewBag.PrivilegeList
}

<div class="layui-side layui-bg-black">
    <div class="layui-side-scroll">
        <!-- 左侧导航区域（可配合layui已有的垂直导航） -->
        <ul class="layui-nav layui-nav-tree" lay-filter="test">
            @{
                //获取顶层菜单
                //条件父节点为null（Parent == null）且显示状态为可见（IsShow == true）
                var privilegeListParent = (ViewBag.PrivilegeList as IList<ZdSoft.Model.SystemFunction>)
                    .Where(m => m.Parent == null && m.IsShow == true)
                    .OrderBy(m => m.Idx).ToList();
                //循环输出顶层菜单
                foreach (ZdSoft.Model.SystemFunction function in privilegeListParent)
                {
                        <!-- 顶级菜单 -->
                    <li class="layui-nav-item layui-nav-itemed" style="display:block;">
                        @Html.ActionLink(function.SystemFunctionName, function.ActionName, function.ControllerName)
                        <!-- 二级菜单 -->
                        @if (function.Children == null)
                        {
                            //如果无子节点则进入下一次循环
                            continue;
                        }
                        <dl class="layui-nav-child">
                            @*循环输出可见（IsShow == true）的二级节点*@
                            @foreach (ZdSoft.Model.SystemFunction item in function.Children.Where(m => m.IsShow == true).ToList())
                            {
                                <dd class="layui-nav-child">
                                    @Html.ActionLink(item.SystemFunctionName, item.ActionName, item.ControllerName)
                                </dd>
                            }
                        </dl>
                    </li>
                }
            }
        </ul>
    </div>
</div>
